home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-01 / ifp1s155.zip / PAGE_19.PAS < prev    next >
Pascal/Delphi Source File  |  1992-04-21  |  2KB  |  72 lines

  1. unit page_19;
  2.  
  3. interface
  4.  
  5. uses Crt, Dos, IFPGlobl, IFPComon;
  6.  
  7. procedure page19;
  8.  
  9. implementation
  10.  
  11. procedure page19;
  12.  
  13. var
  14.   Regs: Registers;
  15.   MultiNumber: byte;
  16.   FoundOne: boolean;
  17.   Address, LastAddress: word;
  18.  
  19. begin
  20. FoundOne:=false;
  21. for MultiNumber:=0 to $FF do
  22.   with regs do
  23.     begin
  24.     AH:=MultiNumber;
  25.     AL:=0;
  26.     Intr($2D, regs);
  27.     if AL = $FF then
  28.       begin
  29.       FoundOne:=true;
  30.       Pause3(-3);
  31.       Caption2('Function');
  32.       Write(Hex(MultiNumber, 2), 'h');
  33.       Caption3('Product');
  34.       for Address:=DI + 8 to DI + $0F do
  35.         Write(Chr(Mem[DX:Address]));
  36.       Caption3('Manufacturer');
  37.       for Address:=DI to DI + 7 do
  38.         Write(Chr(Mem[DX:Address]));
  39.       Caption3('Version');
  40.       Writeln(Hi(CX), decimal, addzero(Lo(CX)));
  41.       Caption3('Entry point');
  42.       AH:=MultiNumber;
  43.       AL:=1;
  44.       Intr($2D, regs);
  45.       if AL = 0 then
  46.         Write('Use INT 2Dh')
  47.       else
  48.         SegOfs(DX, BX);
  49.       Writeln;
  50.       Caption3('Description');
  51.       AH:=MultiNumber;
  52.       AL:=0;
  53.       Intr($2D, regs);
  54.       if Mem[DX:DI + $10] = 0 then
  55.         Writeln('(none)')
  56.       else
  57.         begin
  58.         Address:=DI + $10;
  59.         LastAddress:=Address + 64;
  60.         While (Mem[DX:Address] <> 0) and (Address <= LastAddress) do
  61.           begin
  62.           Write(Chr(Mem[DX:Address]));
  63.           Inc(Address);
  64.           end;
  65.         Writeln;
  66.         end;
  67.       end
  68.     end;
  69. if not FoundOne then
  70.   Caption1('No Alternate Multiplex Programs found!');
  71. end;
  72. end.